{
 "metadata": {
  "name": ""
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Max SINR IA Algorithm"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "This notebook simulates the Closed Form Interference Alignment algorithm."
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Some initialization code"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%pylab inline\n",
      "# xxxxxxxxxx Add the parent folder to the python path. xxxxxxxxxxxxxxxxxxxx\n",
      "import sys\n",
      "import os\n",
      "pyphysim_folder = \"~/cvs_files/pyphysim/\"\n",
      "pyphysim_folder = os.path.expanduser(pyphysim_folder)\n",
      "sys.path.append(pyphysim_folder)\n",
      "# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "\n",
      "import numpy as np\n",
      "\n",
      "# Import the simulation runner\n",
      "from apps.simulate_ia import MaxSINRSimulationRunner\n",
      "from pyphysim.simulations import results\n",
      "\n",
      "# We will use clear_output to erase the progressbar after the simulation has finished.\n",
      "from IPython.display import clear_output\n",
      "\n",
      "# We will use pprint to print the simulation parameters\n",
      "from pprint import pprint"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Populating the interactive namespace from numpy and matplotlib\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Run the algorithm with 120 iterations"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The configuration of the simulation is in the 'ia_config_file_120.txt' file. You can edit and run the cell below to update the configuration file."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%%file ia_config_file_120.txt\n",
      "\n",
      "[Scenario]\n",
      "        SNR = [  0.   5.  10.  15.  20.  25.  30.]\n",
      "        M = 4\n",
      "        modulator = PSK\n",
      "        NSymbs = 100\n",
      "        K = 3\n",
      "        Nr = 2\n",
      "        Nt = 2\n",
      "        Ns = 1\n",
      "[IA Algorithm]\n",
      "        max_iterations = 120\n",
      "[General]\n",
      "        rep_max = 50\n",
      "        max_bit_errors = 10000\n",
      "        unpacked_parameters = SNR,"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Overwriting ia_config_file_120.txt\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "First we need to create a \"view\" of the engines. Note that you need to start the engines before calling the code below."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from IPython.parallel import Client\n",
      "cl = Client()\n",
      "dview = cl.direct_view()\n",
      "\n",
      "# Add the folder containing PyPhysim to the python path in all the\n",
      "# engines\n",
      "dview.execute('import sys')\n",
      "dview.execute('sys.path.append(\"{0}\")'.format(pyphysim_folder))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 3,
       "text": [
        "<AsyncResult: execute>"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "All we need to do now is creating the runner object, call its \"simulate\" method (or the simulate_in_parallel method) and save the results to a file."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "runner_parallel = MaxSINRSimulationRunner('ia_config_file_120.txt', read_command_line_args=False)\n",
      "pprint(runner_parallel.params.parameters)\n",
      "runner_parallel.simulate_in_parallel(dview)\n",
      "\n",
      "# xxxxxxxxxx Get the parameters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "K = 3  # Always 3 form the closed form IA algorithm\n",
      "Nr = runner_parallel.params[\"Nr\"]\n",
      "Nt = runner_parallel.params[\"Nt\"]\n",
      "Ns = runner_parallel.params[\"Ns\"]\n",
      "modulator_name = runner_parallel.modulator.name\n",
      "# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "\n",
      "# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "# File name (without extension) for the figure and result files.\n",
      "results_filename_parallel = 'ia_maxsinr_results_{0}_{1}x{2}({3})_120_parallel'.format(\n",
      "    modulator_name,\n",
      "    Nr,\n",
      "    Nt,\n",
      "    Ns)\n",
      "# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "\n",
      "# xxxxxxxxxx Save the simulation results to a file xxxxxxxxxxxxxxxxxxxx\n",
      "runner_parallel.results.save_to_file('{0}.pickle'.format(results_filename_parallel))\n",
      "# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "\n",
      "print \"Runned iterations: {0}\".format(runner_parallel.runned_reps)\n",
      "print \"Elapsed Time: {0}\".format(runner_parallel.elapsed_time)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "{'K': 3,\n",
        " 'M': 4,\n",
        " 'NSymbs': 100,\n",
        " 'Nr': 2,\n",
        " 'Ns': 1,\n",
        " 'Nt': 2,\n",
        " 'SNR': array([  0.,   5.,  10.,  15.,  20.,  25.,  30.]),\n",
        " 'max_bit_errors': 10000,\n",
        " 'max_iterations': array([120]),\n",
        " 'modulator': 'PSK',\n",
        " 'rep_max': 50,\n",
        " 'unpacked_parameters': ['SNR']}\n"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Runned iterations: [50, 50, 50, 50, 50, 50, 50]\n",
        "Elapsed Time: 14.90s\n",
        "\r",
        "[**                     6%                       ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[*******                15%                      ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[************           26%                      ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[*****************      36%                      ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[*********************  44%                      ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[***********************54%                      ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[***********************62%***                   ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[***********************71%********              ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[***********************78%***********           ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[***********************82%*************         ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[***********************86%***************       ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[***********************90%*****************     ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[***********************93%******************    ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[***********************98%********************* ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[***********************98%********************* ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[**********************100%**********************]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Plot the results"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "results_parallel = results.SimulationResults.load_from_file('{0}.pickle'.format(\n",
      "    results_filename_parallel))\n",
      "\n",
      "# Get the BER and SER from the results object\n",
      "ber_parallel = results_parallel.get_result_values_list('ber')\n",
      "ser_parallel = results_parallel.get_result_values_list('ser')\n",
      "ia_iterations_parallel = results_parallel.params['max_iterations']\n",
      "\n",
      "# Get the SNR from the simulation parameters\n",
      "SNR_parallel = np.array(results_parallel.params['SNR'])\n",
      "\n",
      "# Can only plot if we simulated for more then one value of SNR\n",
      "if SNR_parallel.size > 1:\n",
      "    fig = figure(figsize=(12,9))\n",
      "    semilogy(SNR_parallel, ber_parallel, '--g*', label='BER')\n",
      "    semilogy(SNR_parallel, ser_parallel, '--b*', label='SER')\n",
      "    xlabel('SNR')\n",
      "    ylabel('Error')\n",
      "    title('Min Leakage IA Algorithm ({5} Iterations)\\nK={0}, Nr={1}, Nt={2}, Ns={3}, {4}'.format(K, Nr, Nt, Ns, modulator_name, ia_iterations_parallel))\n",
      "    legend()\n",
      "\n",
      "    grid(True, which='both', axis='both')\n",
      "    show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nJzTm9kjnc889h4eHh/1r4MCBdO/enXHjxtG7d2/KlClD48aN+frrr4H0k8g6d+5MnTp1CAgIwN3d\n3X5liOvzeeWVV+jevTsPPPAAV69eZe7cufTs2RMfHx/Cw8N57LHH7Ot17tyZF198kfvuu486depw\nzz33ANibs5kzZ1KrVi1at25NmTJlePDBB7O9wsS1OSxZsoQBAwZQpUoVypcvT/ny5fHz82PYsGEs\nW7bshhuVLFmyhO7du9OwYcNMyw8fPpyNGzcSExOTafsNGzbk3XffpXfv3lSqVAkvLy/Kly9vz/uV\nV16hRYsWNGnShCZNmtCiRYtM1yXPql7XPhYSEsK0adPw9vZmzpw52a6T1WvPbh83W79fv358+eWX\nN70SS1RUFB4eHjRq1AiLxYK7uzv169cH0scy5s+fz759+6hQoQJeXl54eXnZLynp6+vL6tWrefnl\nl/Hx8WHPnj05np3PKv8ePXoA6eNQLVq0ANJrmJycbL/aTY8ePezXKs/q/Zk0aRK//PILZcqU4dFH\nHyUoKChXNQgPDycqKopKlSrxxBNPMHXqVDp27Jjt/jLipKQkQkJCuOOOO6hYsSLnz59n+vTpQPqH\nl6+++or+/fvn6r0Rkdyz2Bz1IrIiIvno8OHDNG7cmOTk5BtuVOLILl26hLe3N8ePH880a20mL7/8\nMuXLl2f48OF88sknDBkyhBIlSrBz5858vZJIVqZMmcLbb79NcnIyly9fdoibEhnhvffe49SpU8yY\nMcPoVESKPDXXIlJkrV27lq5du3LlyhX69++Pm5sba9asMTqtW/riiy+4//77sdlsjB49mp9++inT\ntYxFRMRxmefwjYhILs2fPx8/Pz9q1apFsWLF+O9//2t0Sjmyfv16+01iTpw4kesxBxERMY6OXIuI\niIiI5BMduRYRERERySdqrkVERERE8omaaxERERGRfKLmWkQMExAQwObNm+3xZ599ho+PD9u2bcvx\nNi5cuEDbtm3x9fWlTJkyNG/enM8//zxXOfj5+XHlyhX7YwsWLOC+++7L8Tayc+7cOYKDg6lcuTJl\ny5bl3nvvZffu3TlePzAwEHd390x3bPz222+pXr16pvy3bNmS69yOHj3KY489Rvny5SlXrhydO3fO\n9jrfWSnI9y3Dd999x3333UfZsmUzvebcGjBgAC4uLvzxxx/ZLrNo0SJcXV3x8vKy/xxdewfNN954\ngxo1auDl5UXVqlXp3bu3/bnAwEA+/vhjexwZGYmPjw8rVqzIc84iYl5qrkXEMNfeEGPx4sUMGzaM\nL7/8knbt2uV4G56enixcuJB//vmHuLg4Jk+eTM+ePTPdPvpW0tLSeOedd3K07NWrV3O83UuXLtGq\nVSt++eUXYmJi6N+/Pw8//DCXL1/O8TZKlSqV6e6S17NYLHm6o2ZcXBzdu3fn6NGjnD17lrvvvjvT\nTXhyIjfvW154enoyaNCgG+5wmBvbt2/njz/+yNH1rdu2bUtCQgKxsbEMHDiQnj17Ehsby+LFi/nk\nk0/YvHkzCQkJ7NmzhwceeMC+3rU/x5s2beLxxx9n0aJF9OzZM895i4h5qbkWEUPZbDY+/PBDxowZ\nw6ZNm2jdunWu1i9RogR169bFxcWFtLQ0XFxc8PX1pXjx4jla32KxMGbMGGbNmkVcXFyWy7i4uPDB\nBx9Qu3btXN30pHr16owYMQI/Pz8sFguDBw8mOTk5x0eILRYLL774IuHh4Vkede3bty8nT57k0Ucf\nxcvLi1mzZuU4t5YtW/LMM89QtmxZ3NzcGDFiBL///jsxMTE5zu1m75vNZmPkyJH4+flRpkwZmjRp\nwsGDB3OcX0aOffr0yfNR66tXr/Liiy/y7rvv5ugDSMYyFouFZ555hn///ZcTJ06wZ88eOnXqZM/D\nz8+PQYMG3bDuhg0b6NWrF+Hh4XTr1i1POYuI+am5FhFDffDBB0yaNIktW7ZkuiU7QNmyZfH29s7y\n680338y0bJMmTXB3d8dqtbJ27docN9cALVq0IDAw8KbN6bp16/jpp584dOiQfX/Z5TZs2LAst7F3\n716Sk5OpVatWjnOrXLkygwcPZtKkSTc8t3TpUvz9/dmwYQMJCQmMGTMGyN37luH777+nYsWKeHt7\n5zi3m71vmzZtYtu2bRw7doy4uDhWrlxJuXLlAJgxY0a2+fn4+OR4/7fy9ttv06FDBxo3bpyr9a5e\nvcqCBQvw8vKiTp06tG7dmiVLljBr1iz27NlDamrqDeusX7+efv36sXr1ajp37pxfL0FETMjN6ARE\nxHnZbDa+/fZbOnbsSKNGjW54PjY2Nsfb+u2330hOTubDDz8kKCiII0eO4OnpmaN1LRYLU6dOpW3b\ntgwfPjzLZUJCQihbtmym/eVGfHw8ffv2ZfLkyXh5eeV4PYvFQkhICLVq1bI39reSm/cN4NSpUwwb\n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\nvFQ7c1P9zEu1cy5qrkVERERE8olmrkVEREScmPqqdE4/c221Wu1/ZomMjMz0JxfFihUrVqxYsWLF\nuYsdUUBAAB4eHnh5eeHj48MjjzzCqVOngPResESJEnh5edm/mjdvDkBUVBQuLi72xwMCAnjttddu\nub9r34/Q0FCsVmuuc9aRayl0kZGOfUkiuTnVz7xUO3NT/czL0Wt3q77KZrMxYeoE3pj4BhaLJU/7\nyOs2qlevzscff0zHjh1JSkri+eef5+LFi6xdu5ZnnnmGqlWrMnXq1BvWi4qKokaNGly9ehUXFxd+\n/vlnOnTowIoVK+jatWuW+3L6I9ciIiIiUvBWf7Ga9797nzUb1hi6jRIlShAUFMShQ4cActXw3nXX\nXTRs2NC+bkFScy2FzpE/vcutqX7mpdqZm+pnXmat3fyw+TS8tyETwiaQEJhAyMIQGt7bkPlh8wt1\nGxlN9JUrV1i+fDn33HMPkLMjyhnP//jjjxw8eJCWLVvmeL95pbEQERERESeWXV9ls9lYtX4Voz8a\nTXTLaPgWCABqAv9/smNSh0lMDpx8w7qTIyczZesUsAHHgT+BB6DqT1WZ8+wcgh4NytF4SEBAABcu\nXMDNzY3Lly9Tvnx5IiIiaNSoEVarleXLl1OyZEn78t27dycsLMw+FlKmTBmSkpJITEzkrbfeYvTo\n0bl+HzQWIg7P0U+ekJtT/cxLtTM31c+8zFo7i8WCxWIh9lIsDX5ugJeLF6t6rsI22YZtUvpXVo01\nwOTAyenLTLaxsudKvFy9aPBzA2ITYu3bzWkO69atIyYmhqSkJN599106dOjA2bNnsVgsjB07lpiY\nGPtXWFhYpvUvXLjApUuXmD17NqGhocTHx9/u23JLaq5FREREJEvH/3ecsNFhHFh3gLAxYRz73zFD\ntgHpjfbjjz+Oq6sr27dvB3I2d+3i4sLIkSMJCAjg7bffztO+c8OtwPdQQKxWK1arlcDAQPsnwoyZ\nJsWOHWc85ij5KM5dnPGYo+SjOOdxoP5/aepY9VNcUPHNjB8+3v590KNBt1y+ILaR0UDbbDbWr19P\nbGwsDRo04IsvvshdHuPH079/f8aOHYuHh0eWy0Re8+9baGgoe/fuzXW+mrkWERERcWKO3FdVr16d\ns2fP4urqisViISAggJCQEIKDg3nmmWdYtmwZxYsXty/v7u7OP//8Q1RUFDVr1iQlJQUXFxf7840a\n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\nHDmSM2fOYLPZGDduHF26dLmhsRaR21PTpya7B++maYWmNJvXjBUHVxidUpFVvjwMHQrbtsEvv0Dd\nuuCqm2uKiBRptzxyHR4ezvjx47nvvvuw2Wxs3bqVGTNm0Lt371tufNu2bXh6etKvXz/7ke7U1FTq\n1q3Lt99+S+XKlWnZsiXh4eHUr1/fvt7cuXNZsmQJLVu2pFmzZgwZMiRz0jpybWqRkZEEBgYanYYA\nP53+iX6f96NZhWZ88vgnObqtuuqX/2w2OHAAGjWCHB67yBPVztxUP/NS7cwtt32n282eTEtLw8XF\nhZ07d/LTTz9hsViYMWMGFStWzNHG27VrR1RUVKbHdu/eTa1atQgICACgd+/erFu3LlNz/eKLL/Li\niy/m+EWISN60rNySX579hS+PfZmjxloKxpkz6SdHenikX9qvd2+oXdvorEREJC9u2ly7uLjw5ptv\n0qtXLx577LF82eHp06epWrWqPa5SpQq7du36f+3deZzO9f7/8ec1ZmzZElHIKEtGZRxbG41zKsUh\nmrJUckVSX2q06Is6nbSiYoRTcWqILJMlWyYqF1Fx8jWSFtuosRZjMsMwy3X9/pifOakZzYxrrvfn\nfV2P++12bsdrhvk885oPL5/rdX0+Jf46bre7YECvUaOGoqOjC/5VePpdudTOrE9/zCl5Qr3esH6D\nLtAFUpSK9fNPf8wp+YOlTkmJ0RdfSK++6tGECdKll8boiSekunX9d7yYmBjH/PdSl7ymf9TUgalP\n//j3F4iL60/XQkaMGKFatWqpd+/eOu+88wo+XrNmzWIdYM+ePerWrVvBWsiCBQuUlJSkadOmSZJm\nzZqlDRs2aNKkScUPzVoIgCB2+mE1Pp90442m0wBAaPP7Gxrnzp2rKVOmqGPHjmrdurVat26tNm3a\nlDpgvXr1lJqaWlCnpqaqfv36pf56sM9v/2UI59q4b6OGfjhUmdmZZ3yc/pW98HDpb38rerD+z3+k\nX38t+deld3ajf/aid6HlrMO11+vV2LFjlZKScsb/du/eXeoDtmnTRjt27NCePXuUnZ2tefPmqXv3\n7qX+egDKRtMLmiozO1PRb0Zr3U/rJEk+n0/TZkzjlSPD/v1v6ZJLpNtvlxITnfewGgAIZX+6FtK6\ndWtt2rSpVF+8b9++WrNmjY4cOaILL7xQzz33nO677z6tWLFCw4YNU15engYOHFjih9KwFgIEzuLv\n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\nSU1NVadOndSiRQtdccUVev311yVx/tmiqP5x/jnfyZMn1b59e0VHRysqKkojR46UVPJzz+WzaIE5\nLy9PzZo1O+NWfnPmzCnxgA5zGjVqpE2bNqlmzZqmo+BPfPbZZ6pSpYruvfdebd26VZL05JNPqlat\nWnryySc1duxYHT16VGPGjDGcFIUprH+jR49W1apV9dhjjxlOh7M5ePCgDh48qOjoaGVmZqp169b6\n4IMPlJCQwPlngaL6l5iYyPlngRMnTqhy5crKzc3V9ddfr1dffVVLliwp0bnnuCc0ns1vb+UXERFR\ncCs/2MWif8+FtA4dOuj8888/42NLliwpuE1m//799cEHH5iIhmIorH8S558N6tatq+joaElSlSpV\n1Lx5c+3bt4/zzxJF9U/i/LNB5cqVJUnZ2dnKy8vT+eefX+Jzz6rhurBb+Z3+hoUdXC6XbrzxRrVp\n00bTpk0zHQcldOjQIdWpU0eSVKdOHR06dMhwIpTUpEmT1LJlSw0cOJC1Agvs2bNHmzdvVvv27Tn/\nLHS6f1dffbUkzj8beL1eRUdHq06dOgXrPSU996warrm3tf3Wr1+vzZs3a8WKFZoyZYo+++wz05FQ\nSi6Xi3PSMg899JBSUlKUnJysiy66SI8//rjpSDiLzMxMxcbGauLEiapateoZn+P8c77MzEzdcccd\nmjhxoqpUqcL5Z4mwsDAlJydr7969Wrt2rVavXn3G54tz7lk1XHMrP/tddNFFkqTatWurZ8+e2rhx\no+FEKIk6dero4MGDkqQDBw7owgsvNJwIJXHhhRcW/MVw//33c/45WE5OjmJjY9WvXz/16NFDEuef\nTU7375577inoH+efXapXr66uXbtq06ZNJT73rBquuZWf3U6cOKGMjAxJ0vHjx7Vy5coz7mQA5+ve\nvXvBU8ZmzJhR8JcG7HDgwIGCHy9atIjzz6F8Pp8GDhyoqKgoDRs2rODjnH92KKp/nH/Od/jw4YJ1\nnaysLK1atUqtWrUq8bln1d1CJGnFihUaNmyY8vLyNHDgwILbpMD5UlJS1LNnT0lSbm6u7r77bvrn\nYH379tWaNWt0+PBh1alTR88995xuu+029erVSz/99JMiIyOVmJioGjVqmI6KQvy+f6NHj5bH41Fy\ncrJcLpcaNWqkt956q2CPEM6xbt06dezYUVdddVXBy88vv/yy2rVrx/lngcL699JLL2nOnDmcfw63\ndetW9e/fX16vV16vV/369dPw4cOVlpZWonPPuuEaAAAAcCqr1kIAAAAAJ2O4BgAAAPyE4RoAAADw\nE4ZrAAAAwE8YrgEgCLz44ou64oor1LJlS7Vq1UobN25UTEyM2rZtW/BzvvrqK3Xq1EmS5PF4VL16\ndbVq1UpRUVF6+umnTUUHgKASbjoAAODcfPHFF1q+fLk2b96siIgIpaWl6dSpU3K5XPrll1+UlJSk\nW2655Q+/rmPHjlq6dKlOnjypVq1aqWfPnmrdurWB/wIACB5cuQYAyx08eFC1atVSRESEJKlmzZoF\nT0N94okn9OKLL57111esWFHR0dHavXt3mWcFgGDHcA0Alrv55puVmpqqZs2aaciQIVq7dm3B5665\n5hqVL19eHo+n4IEWv5eWlqaNGzcqKioqUJEBIGgxXAOA5c477zxt2rRJU6dOVe3atdW7d++CR/VK\n0tNPP60XXnjhD7/us88+U3R0tBo0aKAePXqoRYsWgYwNAEGJ4RoAgkBYWJhuuOEGPfvss5o8ebIW\nLFggSXK5XOrUqZOysrL05ZdfnvFrOnTooOTkZG3btk0LFy5UamqqiegAEFQYrgHActu3b9eOHTsK\n6s2bN6thw4aSJJ/PJyn/6vXYsWMLXQ2JjIxUXFycnn/++cAEBoAgxt1CAMBymZmZevjhh5Wenq7w\n8HA1adJEb731lu64446CYfrWW2/VhRdeWPBrXC7XGYP2gw8+qKZNm2rv3r2qX79+wP8bACBYuHyn\nL2sAAAAAOCeshQAAAAB+wnANAAAA+AnDNQAAAOAnDNcAAACAnzBcAwAAAH7CcA0AAAD4yf8DO1lC\nyQCdFvkAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x4494a50>"
       ]
      }
     ],
     "prompt_number": 5
    }
   ],
   "metadata": {}
  }
 ]
}